home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / programs / mbbs12d.zip / MACROCFG.MAC < prev    next >
Text File  |  1992-06-23  |  21KB  |  732 lines

  1.  
  2.                                MACROCFG.MAC v1.2d
  3.                       by Jeff Oberlee   (C)opyright 1992
  4.  
  5. {:alr}  {MACL MACROBBS.MAC,WF3}     {:alu}  {MACL MACROBBS.MAC,bbs}
  6.  
  7. {:start}
  8.   {SPOC n}  {CURS y}  {LOCA y}
  9.   {PUSH}
  10.   {SETE-P0 exit2}
  11.   {IFEX %_hom%MACROBBS.CFG,,I}
  12.   {ROPE %_hom%MACROBBS.CFG,I}
  13.   {READ bbs}
  14.   {READ sysop}
  15.   {READ syspass}
  16.   {READ datadir}
  17.   {READ msgsdir}
  18.   {READ max}
  19.   {READ userdir}
  20.   {READ filedir}
  21.   {READ dszdir}
  22.   {READ mspeed}
  23.   {READ initstr}
  24.   {READ bw}
  25.   {READ asan}
  26.   {READ cb}
  27.   {READ dal}
  28.   {READ sal}
  29.   {READ ring}
  30.   {READ connect}
  31.   {READ tlc}
  32.   {READ lock}
  33.   {RCLO}
  34.  
  35. {:I}  {CLEA}  {STAT n}
  36.     {DISP 2,36,4E, ╔ ▄   ▄ ▄▄▄ ▄▄▄ ▄▄▄  ▄▄▄▄ (tm) ═══════════╗}
  37.     {DISP 3,36,4E, ║ ██▄██ █▄█ █   █▄█▄ █  █ Version 1.2d    ║}
  38.     {DISP 4,36,4E, ║ █ ▀ █ █ █ █▄▄ █  █ █▄▄█ CONFIGURATION   ║}
  39.     {DISP 5,36,4E, ╚═════════ B B S ═════════════════════════╝
  40.     {DISP 7 ,2,0F,1.}  {DISP 7,5,07,BBS System Data}
  41.     {DISP 8 ,2,0F,2.}  {DISP 8,5,07,Modem Config}
  42.     {DISP 9 ,2,0F,3.}  {DISP 9,5,07,Toggles}
  43.     {DISP 10,2,0F,4.}  {DISP 10,5,07,DONE!}
  44.     {DISP 12,2,0F,X.} {DISP 12,5,0C,ABORT to COMMO}
  45.     {DISP 14,5,0E,Your choice? }
  46.     {SETG 0,,}
  47. {:I1}  {GETS ch,1,I1}
  48.     {COMP ch,1}  {IFCO C}
  49.     {COMP ch,2}  {IFCO M}
  50.     {COMP ch,3}  {IFCO T}
  51.     {COMP ch,4}  {IFCO S}
  52.     {COMP ch,X}  {IFCO exit3}
  53.     {SEND ^H}  {GOTO I1}
  54.  
  55. {:C}  {CLEA}
  56.   {DISP 1,35,4E,System Data}
  57.   {DISP 4,2,0F,BBS name? }
  58.   {DISP 4,12,0E,%bbs}
  59. {:C1}  {GETS-A bbs,50,C1}
  60.   {DISP 5,2,0F,Sysop handle?                                (the name you wish to go by)}
  61.   {DISP 5,16,0E,%sysop}
  62. {:C2}  {GETS-A sysop,30,C2}
  63.   {DISP 6,2,0F,System password?                (word that protects important stuff)}
  64.   {DISP 6,19,0E,%syspass}
  65. {:C3}  {GETS-A syspass,15,C3}
  66.   {DISP 7,2,0F,The disk directory for the main data files?  (Full path)  MUST have \ at end.}
  67.   {DISP 8,2,0E,%datadir}
  68. {:C4}  {GETS-A datadir,70,C4}
  69.   {DISP 9,2,0F,The disk dir for MESSAGE BASE data files?  (Full path)  MUST have \ at end.}
  70.   {DISP 10,2,0E,%msgsdir}
  71. {:C5}  {GETS-A msgsdir,70,C5}
  72.   {DISP 11,2,0F,Maximum number of lines that can be entered into a message?}
  73.   {DISP 12,2,0E,%max}
  74. {:C6}  {GETS-A max,3,C6}
  75.   {DISP 13,2,0F,The disk directory for the userfiles?  (Full path)  MUST have \ at end.}
  76.   {DISP 14,2,0E,%userdir}
  77. {:C7}  {GETS-A userdir,70,C7}
  78.   {DISP 15,2,0F,The disk dir for FILE BASE data files?  (Full path)  MUST have \ at end.}
  79.   {DISP 16,2,0E,%filedir}
  80. {:C8}  {GETS-A filedir,70,C8}
  81.   {DISP 17,2,0F,The directory AND name of your DSZ executable? (eg. C:\COMMO\dsz.com)}
  82.   {DISP 18,2,0E,%dszdir}
  83. {:C9}  {GETS-A dszdir,70,C9}
  84.   {DISP 20,2,0F,(D)OS DOORWAY Access Level? (1-999) : }
  85.   {DISP 20,40,0E,%dal}
  86. {:C10}  {GETS-A dal,3,C10}
  87.   {DISP 21,2,0F,MESSAGE (S)ysop functions Access Level? (1-999) : }
  88.   {DISP 21,52,0E,%sal}
  89. {:C11}  {GETS-A sal,3,C11}
  90.   {DISP 22,2,0F,Time limit per call (in minutes) : }
  91.   {DISP 22,37,0E,%tlc}
  92. {:C12}  {GETS-A tlc,3,C12}
  93.   {GOTO I}
  94.  
  95. {:M}  {CLEA}
  96.   {DISP 1,33,4E,Modem Config}
  97.   {DISP 4,2,0F,Your modem's highest baud rate? }
  98.   {DISP 4,34,0E,%mspeed}
  99. {:M1}  {GETS-A mspeed,5,M1}
  100.   {DISP 5,2,0F,Modem init string? }
  101.   {DISP 5,21,0E,%initstr}
  102. {:M2}  {GETS-A initstr,40,M2}
  103.   {DISP 6,2,0F,The EXACT string your modem returns when the phone rings? (Eg. RING)}
  104.   {DISP 7,2,0E,%ring}
  105. {:M3}  {GETS-A ring,15,M3}
  106.   {DISP 8,2,0F,The EXACT string your modem returns upon connection?  Exclude speed.}
  107.   {DISP 9,2,0F,(Eg. CONNECT)}
  108.   {DISP 10,2,0E,%connect}
  109. {:M4}  {GETS-A connect,15,M4}
  110.   {GOTO I}
  111.  
  112. {:T}  {CLEA}
  113.   {SETV dline,yn}
  114.   {DISP 1,33,4E,System Toggles}
  115. {:T1}  {DISP 4,2,0F,Would you like the wait screen to blank? (y/n) [%bw] :  ^H}
  116.   {SETV ch,%bw}
  117.   {GETS ch,1,T2}
  118.   {INST %dline,%ch}  {IFCO ,T1}
  119.   {SETV bw,%ch}
  120. {:T2}  {DISP 5,2,0F,Does your system accept ANSI color codes? (y/n) [%asan] :  ^H}
  121.   {SETV ch,%asan}
  122.   {GETS ch,1,T3}
  123.   {INST %dline,%ch}  {IFCO ,T2}
  124.   {SETV asan,%ch}
  125. {:T3}  {DISP 6,2,0F,Capture chat sessions? (y/n) [%cb] :  ^H}
  126.   {SETV ch,%cb}
  127.   {GETS ch,1,T4}
  128.   {INST %dline,%ch}  {IFCO ,T3}
  129.   {SETV cb,%ch}
  130. {:T4}  {DISP 7,2,0F,Lock serial port at highest baud rate? (y/n) [%lock] :  ^H}
  131.   {SETV ch,%lock}
  132.   {GETS ch,1,T5}
  133.   {INST %dline,%ch}  {IFCO ,T4}
  134.   {SETV lock,%ch}
  135. {:T5}  {GOTO I}
  136.  
  137. {:S}   {DISP 16,5,0F,Ok to save? (Y,n) :  ^H}
  138.     {GETS-H %ch,1,S1}
  139.     {COMP ch,y}  {IFCO S1}
  140.     {COMP ch,n}  {IFCO exit,S}
  141. {:S1}  {DISP 17,5,03,Saving...}  {PAUS 1}
  142.     {WOPE %_hom%MACROBBS.CFG}
  143.     {WRIT %bbs}
  144.     {WRIT %sysop}
  145.     {WRIT %syspass}
  146.     {WRIT %datadir}
  147.     {WRIT %msgsdir}
  148.     {WRIT %max}
  149.     {WRIT %userdir}
  150.     {WRIT %filedir}
  151.     {WRIT %dszdir}
  152.     {WRIT %mspeed}
  153.     {WRIT %initstr}
  154.     {WRIT %bw}
  155.     {WRIT %asan}
  156.     {WRIT %cb}
  157.     {WRIT %dal}
  158.     {WRIT %sal}
  159.     {WRIT %ring}
  160.     {WRIT %connect}
  161.     {WRIT %tlc}
  162.     {WRIT %lock}
  163.     {WCLO}
  164. {:exit}
  165.   {MACL MACROBBS.MAC,bbs}
  166. {:exit2}
  167.   {SETE-P0 EX1}  {SETV ch}
  168.   {INPU ch,Return to MacroBBS now? (no save)  y/N}
  169.   {COMP ch,y}  {IFCO exit}
  170. {:EX1}  {RETURN}
  171. {:exit3}  {CLEA}  {STAT y}  {SPOC y}
  172.   {DISP 2,1,0E,Exiting to COMMO ...^J^M}
  173.   {INIT}
  174.   {MACL COMMO.MAC}
  175.  
  176.  
  177. ///////////////////////////////////////////////////////////////////////////
  178. {:read_user}
  179.   {ROPE %userdir%%userno.MHS,RU1}
  180.   {READ login_name}
  181.   {READ password}
  182.   {READ al}
  183.   {READ protocol}
  184.   {READ expert}
  185.   {READ a}
  186.   {READ fa}
  187.   {RCLO}
  188. {:RU1}  {RETURN}
  189.  
  190. {:write_user}
  191.   {WOPE %userdir%%userno.MHS}
  192.   {WRIT %login_name}
  193.   {WRIT %password}
  194.   {WRIT %al}
  195.   {WRIT %protocol}
  196.   {WRIT %expert}
  197.   {WRIT %a}
  198.   {WRIT %fa}
  199.   {WCLO}
  200.   {RETURN}
  201.  
  202. {:update_clist}
  203.   {ROPE %datadir%CALLERS.LST,UC1}
  204.   {WOPE %datadir%TEMP.000}
  205. {:UC2}  {READ ch}  {READ cline}  {READ dline}
  206.   {COMP ch,%userno}  {IFCO UC3}
  207.   {WRIT %ch}  {WRIT %cline}  {WRIT %dline}  {GOTO UC2}
  208. {:UC3}  {COMP s,1}  {IFCO UC5}
  209. {:UC4}  {WRIT %ch}
  210.   {WRIT %login_name}
  211.   {WRIT %password}
  212. {:UC5}  {READ dline}  {WRIT %dline}  {GOTO UC5}
  213. {:UC1}  {WCLO}
  214.   {EXEC-N COPY %datadir%TEMP.000 %datadir%CALLERS.LST}
  215.   {EXEC-N DEL %datadir%TEMP.000}
  216.   {RETURN}
  217.  
  218. {:read_data}
  219.   {ROPE %datadir%CALLER.DAT,RD1}
  220.   {READ %callno}
  221.   {READ %tdcalls}
  222.   {READ pub}
  223.   {READ pvt}
  224.   {READ ttu}
  225.   {READ tf}
  226.   {READ ldate}
  227.   {READ stime}
  228.   {READ ftime}
  229.   {READ l_caller}
  230.   {READ luserno}
  231.   {READ uhigh}
  232.   {READ mhigh}
  233.   {READ fhigh}
  234.   {RCLO}
  235. {:RD1}  {RETURN}
  236.  
  237. {:write_data}
  238.   {WOPE %datadir%CALLER.DAT}
  239.   {WRIT %callno}
  240.   {WRIT %tdcalls}
  241.   {WRIT %pub}
  242.   {WRIT %pvt}
  243.   {WRIT %ttu}
  244.   {WRIT %tf}
  245.   {WRIT %ldate}
  246.   {WRIT %stime}
  247.   {WRIT %ftime}
  248.   {WRIT %login_name}
  249.   {WRIT %userno}
  250.   {WRIT %uhigh}
  251.   {WRIT %mhigh}
  252.   {WRIT %fhigh}
  253.   {WCLO}
  254.   {RETURN}
  255.  
  256. {:read_baseinfo}
  257.   {ROPE %msgsdir%A%a.BAS,RB1}
  258.   {READ bname}
  259.   {READ %bal}
  260.   {READ maxmsg}
  261.   {READ lomsgno}
  262.   {READ himsgno}
  263.   {RCLO}
  264.   {ROPE %msgsdir%A%a.IND,RB1}
  265.   {SETV mic,0}
  266. {:RB2}  {READ msgno}   {INCR mic}
  267.   {COMP mic,%userno}  {IFCO ,RB2}
  268.   {RCLO}
  269. {:RB1}  {SETV mic}
  270.   {RETURN}
  271.  
  272. {:update_baseinfo}
  273.   {WOPE %msgsdir%A%a.BAS}
  274.   {WRIT %bname}
  275.   {WRIT %bal}
  276.   {WRIT %maxmsg}
  277.   {WRIT %lomsgno}
  278.   {WRIT %himsgno}
  279.   {WCLO}
  280.   {RETURN}
  281.  
  282. {:match_name_userno}
  283.   {IFEX %datadir%CALLERS.LST,,MNU2}
  284.   {ROPE %datadir%CALLERS.LST,MNU2}
  285. {:MNU1} {READ ch}  {READ lname}  {READ dline}
  286.   {COMP to,%ch}  {IFCO MNU5}
  287.   {COMP to,%lname}  {IFCO ,MNU1}
  288. {:MNU5} {SETV to,%lname}
  289.   {SETV tono,%ch}
  290.   {RCLO}
  291.   {SETV t,1}
  292.   {GOTO MNU4}
  293. {:MNU2} {SEND %an1%ID not found.}  {PAUS 1}
  294. {:MNU4} {RETURN}
  295.  
  296. {:add_index}
  297.   {SETV mic,0}
  298. {:AI1}  {INCR mic}
  299.   {COMP mic,%mhigh}  {IFCO-G AI2}
  300.   {WOPE-A %msgsdir%A%mic.IND}  {WRIT 1}  {WCLO}
  301.   {GOTO AI1}
  302. {:AI2}  {SETV mic}
  303.   {RETURN}
  304.  
  305. {:update_index}
  306.   {IFEX %msgsdir%A%a.IND,,UIX5}
  307.   {ROPE %msgsdir%A%a.IND,UIX4}
  308.   {WOPE %datadir%TEMP.000}
  309.   {SETV mic,0}
  310. {:UIX1}  {INCR mic}  {READ mi}
  311.   {COMP mic,%userno}  {IFCO UIX2}
  312.   {WRIT %mi}   {GOTO UIX1}
  313. {:UIX2}  {WRIT %msgno}
  314. {:UIX3}  {READ mi}  {WRIT %mi}   {GOTO UIX3}
  315. {:UIX4}  {WCLO}
  316.   {EXEC-N COPY %datadir%TEMP.000 %msgsdir%A%a.IND}
  317.   {SETV mic}  {SETV mi}
  318. {:UIX5}  {RETURN}
  319.  
  320. {:EO2}
  321.   {DISP 14,1,07, ╔════════════════════════════════╗}
  322.   {DISP 15,1,07, ║                                ║}
  323.   {DISP 16,1,07, ╚════════════════════════════════╝}
  324.   {DISP 17,1,,            }
  325.   {RETURN}
  326. ///////////////////////////////////////////////////////////////////////////
  327.  
  328. {:EMA}
  329.   {SETE exit5}
  330.   {SEND %an0}
  331.   {DISP 15,3,,%an7%%an9 Scanning...}
  332.   {SETV dline,Message Area(s)}
  333.   {CALL get_minfo}
  334.   {CALL EO2}
  335. {:EM2}  {SEND %an0}
  336.   {SETV dline,Message Area(s)}
  337.   {CALL AE1}
  338.   {COMP ch,e}  {IFCO EM6}
  339.   {COMP ch,d}  {IFCO EM3,EM4}
  340.  
  341. {:get_minfo}
  342.   {SETV high,0}  {SETV total,0}  {SETV na,0}  {SETV temp,0}
  343. {:EM}  {INCR temp}  {COMP temp,%mhigh}  {IFCO-G EM0}
  344.   {IFEX %msgsdir%A%temp.BAS,,EM}
  345.   {SETV high,%temp}
  346.   {INCR total}  {GOTO EM}
  347. {:EM0}  {INCR na}  {IFEX %msgsdir%A%na.BAS,EM0}
  348.   {RETURN}
  349.  
  350. {:EM4}  {CALL blank_box}
  351.   {DISP 7 ,49,0E,Add a Message Area}
  352.   {DISP 9 ,38,07,Name? %an7%%an12                              }  {DISP 9 ,44,,}  {SEND %an7%%an12}
  353.   {SETG 120,EM11}
  354.   {GETS bname,30,EM2}
  355.   {SEND %an0}  {DISP 10,38,07,MAX msg #? }
  356. {:EM1}  {GETS maxmsg,3,EM1}
  357.   {DISP 11,38,07,Access Level? }
  358. {:EM20}  {GETS bal,3,EM20}
  359. {:EM10} {DISP 13,38,0C,Ok to save? (%an0%Y%an1,n) :%an0  ^H}
  360.   {GETS-H ch,1,EM5}
  361.   {COMP ch,y}  {IFCO EM5}
  362.   {COMP ch,n}  {IFCO EM4,EM10}
  363. {:EM5}  {SETV lomsgno,1}  {SETV himsgno,0}
  364.   {SETV a,%na}
  365.   {DISP 14,38,07,Saving area #%a...}
  366.   {COMP a,%mhigh}  {IFCO-LE EM19}
  367.   {CALL read_data}
  368.   {SETV mhigh,%a}  {SETV login_name,%l_caller} {SETV userno,%luserno}
  369.   {CALL write_data}
  370. {:EM19}  {CALL update_baseinfo}
  371.   {SETV count,0}
  372.   {WOPE %msgsdir%A%a.IND}
  373. {:EM13}  {INCR count}  {WRIT 1}
  374.   {COMP count,%uhigh}  {IFCO ,EM13}
  375.   {WCLO}
  376.   {EXEC-N MD %msgsdir%A%a}
  377.   {GOTO EMA}
  378.  
  379. {:EM6}  {CALL blank_box}
  380.   {DISP 7 ,49,0E,Edit a Message Area}
  381.   {DISP 9 ,38,0F,Edit which? (1 - %mhigh) : }
  382.   {SETG 120,EM11}
  383.   {GETS a,2,EM2}
  384.   {COMP a,1}  {IFCO-L EM6}
  385.   {COMP a,%mhigh}  {IFCO-G EM6}
  386.   {IFEX %msgsdir%A%a.BAS,,EM6}
  387.   {CALL read_baseinfo}
  388.   {CALL msgdspl}
  389.   {DISP 11,38,0D,(Press ENTER to keep same info)}
  390. {:EM8}  {DISP 12,38,07,Name? %an7%%an12                              }  {DISP 12,44,,}  {SEND %an7%%an12}
  391.   {SETG 120,EM17}
  392.   {GETS ch,30,EM9}
  393.   {SETV bname,%ch}  {SEND %an0}
  394. {:EM9}  {SEND %an0}  {DISP 13,38,07,MAX message #? }
  395.   {GETS ch,3,EM15}
  396.   {SETV maxmsg,%ch}
  397. {:EM15} {DISP 14,38,07,Access Level? }
  398.   {GETS ch,3,EM12}
  399.   {SETV bal,%ch}
  400. {:EM12}  {DISP 15,38,0C,Saving...}
  401.   {CALL update_baseinfo}
  402.   {GOTO EM6}
  403. {:EM11}  {SEND %an0}
  404.   {GOTO AE5}
  405.  
  406. {:EM3}  {CALL blank_box}
  407.   {DISP 7 ,49,,%an7%%an9%DELETE%an3 a Message Area}
  408.   {DISP 9 ,38,0F,Delete which? (1 - %mhigh) : }
  409.   {SETG 120,EM11}
  410.   {GETS a,2,EM2}
  411.   {COMP a,1}  {IFCO-L EM3}
  412.   {COMP a,%mhigh}  {IFCO-G EM3}
  413.   {IFEX %msgsdir%A%a.BAS,,EM3}
  414.   {CALL read_baseinfo}
  415.   {CALL msgdspl}
  416. {:EM14}  {DISP 12,38,,%an7%DELETE%an3 this area? %an0(y,%an7%N%an0) ;  ^H}
  417.   {GETS ch,1,EM2}
  418.   {COMP ch,n}  {IFCO EM2}
  419.   {COMP ch,y}  {IFCO ,EM14}
  420.   {DISP 14,38,,%an7%%an9%DELETING}
  421.   {EXEC-N DEL %msgsdir%A%a.*}
  422.   {EXEC-N DEL %msgsdir%A%a\*.msg}
  423.   {EXEC-N RD %msgsdir%A%a}
  424.   {CALL get_minfo}
  425.   {COMP mhigh,%high}  {IFCO-LE EM2}
  426.   {CALL read_data)
  427.   {SETV mhigh,%high}  {SETV login_name,%l_caller}  {SETV userno,%luserno}
  428.   {CALL write_data)
  429.   {GOTO EM2}
  430.  
  431. {:msgdspl}
  432.   {CALL blank_box}
  433.   {SETV temp,0}
  434.   {COMP himsgno,0}  {IFCO MD1}
  435.   {SETV temp,%himsgno}  {DECR temp,%lomsgno}  {INCR temp}
  436. {:MD1}  {DISP 6 ,38,0E, Message Area #%a - %temp msg(s) }
  437.   {DISP 8 ,38,07,Name  : %an7%%bname}
  438.   {DISP 9 ,38,07,MAXmsg: %an7%%maxmsg}
  439.   {DISP 10,38,07,AL    : %an7%%bal}
  440.   {RETURN}
  441.  
  442. {:ECI}
  443.   {SETE exit5}
  444.   {SEND %an0}
  445.   {DISP 15,3,,%an7%%an9 Scanning...}
  446.   {CALL get_cinfo)
  447.   {CALL EO2}
  448. {:EC1}  {SEND %an0}
  449.   {SETV dline,Caller Files}
  450.   {CALL AE1}
  451.   {COMP ch,e}   {IFCO EC5}
  452.   {COMP ch,d}   {IFCO EC13,EC2}
  453.  
  454. {:get_cinfo}
  455.   {SETV high,0}  {SETV total,0}  {SETV na,0}  {SETV temp,0}
  456. {:EC}  {INCR temp}  {COMP temp,%uhigh}  {IFCO-G EC0}
  457.   {IFEX %userdir%%temp.MHS,,EC}
  458.   {SETV high,%temp}
  459.   {INCR total}  {GOTO EC}
  460. {:EC0}  {INCR na}  {IFEX %userdir%%na.MHS,EC0}
  461.   {RETURN}
  462.  
  463. {:EC2}  {CALL blank_box}
  464.   {DISP 7 ,49,0E,Add a Caller}
  465.   {DISP 9 ,38,07,Handle? %an7%%an12                              }  {DISP 9,46,,}  {SEND %an7%%an12}
  466.   {SETG 120,EM11}
  467.   {GETS temp,30,EC1}
  468.   {DISP 10,38,,%an3%Checking...}
  469.   {LENG %temp}  {COMP %_len,3}  {IFCO-L EC2}
  470.   {COMP temp,new}  {IFCO EC2}
  471.   {COMP temp,1}  {IFCO-GE EC2}
  472.   {SETV to,%temp}
  473.   {CALL match_name_userno}
  474.   {COMP t,1}  {SETV t}  {IFCO EC2}
  475.   {SEND %an0}  {DISP 10,38,07,Password?                }
  476.   {DISP 10,38,07,Password? }
  477. {:EC11}  {GETS password,15,EC11}
  478.   {DISP 11,38,07,Access Level? }
  479.   {SETV protocol,z}
  480. {:EC16}  {GETS al,3,EC16}
  481. {:EC3}  {DISP 13,38,0C,Ok to save? (%an0%Y%an1,n) :%an0  ^H}
  482.   {GETS-H ch,1,EC4}
  483.   {COMP ch,y}  {IFCO EC4}
  484.   {COMP ch,n}  {IFCO EC2,EC3}
  485. {:EC4}  {DISP 14,38,07,Saving #%na...}
  486.   {SETV login_name,%temp}  {SETV userno,%na}
  487.   {COMP userno,%uhigh}  {IFCO-LE EC17}
  488.   {CALL read_data}
  489.   {SETV uhigh,%na}  {SETV login_name,%l_caller} {SETV userno,%luserno}
  490.   {CALL write_data}
  491.   {SETV login_name,%temp} {SETV userno,%na}
  492.   {CALL add_index}
  493. {:EC17}  {CALL write_user}
  494.   {WOPE-A %datadir%CALLERS.LST}
  495.   {WRIT %userno}
  496.   {WRIT %login_name}
  497.   {WRIT %password}
  498.   {WCLO}
  499.   {GOTO ECI}
  500.  
  501. {:EC5}  {CALL blank_box}
  502.   {DISP 7 ,49,0E,Edit Caller Info}
  503.   {DISP 9 ,38,0F,Enter a Handle or ID#.}
  504.   {DISP 10,38,07,: }  {SEND %an3}
  505.   {SETG 120,EM11}
  506.   {GETS ch,30,EC1}
  507.   {DISP 11,38,,}
  508.   {SETV to,%ch}
  509.   {CALL match_name_userno}
  510.   {COMP t,1}  {IFCO ,EC5}  {SETV t}
  511.  
  512. {:EC6}  {DISP 12,38,07,Edit%an4 %to%%an0?}
  513.   {DISP 13,43,0C,(%an0%Y%an1,n) :  ^H}
  514.   {GETS-H ch,1,EC7}
  515.   {COMP ch,y}  {IFCO EC7}
  516.   {COMP ch,n}  {IFCO EC5,EC6}
  517. {:EC7}  {CALL blank_box}
  518.   {SETV userno,%tono}
  519.   {CALL read_user}
  520.   {DISP 7 ,50,07,Account #%userno}
  521.   {DISP 8 ,38,07,Handle: %an7%%login_name}
  522.   {DISP 9 ,38,07,Proto : %an7%%protocol}
  523.   {DISP 10,38,07,AL    : %an7%%al}
  524.   {DISP 11,38,0D,(Press ENTER to keep the same)}
  525.   {DISP 12,38,07,Handle? %an7%%an12                              }  {DISP 12,46,,}  {SEND %an7%%an12}
  526.   {SETG 120,EM11}
  527.   {GETS ch,30,EC8}
  528.   {DISP 13,38,07,}
  529.   {SETV login_name,%ch}
  530.   {CALL update_clist}
  531. {:EC8}  {SEND %an0}
  532.   {DISP 13,38,07,Protocol? }
  533.   {GETS ch,1,EC9}
  534.   {SETV protocol,%ch}
  535. {:EC9}  {DISP 14,38,07,Access Level? }
  536.   {GETS ch,3,EC10}
  537.   {SETV al,%ch}
  538. {:EC10} {DISP 15,38,0C,Saving...}
  539.   {CALL write_user}
  540.   {GOTO EC5}
  541.  
  542. {:EC13}  {CALL blank_box}
  543.   {DISP 7 ,49,0F,%an7%%an9%DELETE%an3 a Caller}
  544.   {DISP 9 ,38,0F,Enter a Handle or ID#.}
  545.   {DISP 10,38,07,: }  {SEND %an1}
  546.   {SETG 120,EM11}
  547.   {GETS ch,30,EC1}
  548.   {SETV to,%ch}
  549.   {DISP 7 ,49,0F,%an7%DELETE%an3 a Caller}
  550.   {DISP 11,38,,}
  551.   {CALL match_name_userno}
  552.   {COMP t,1}  {IFCO ,EC13}  {SETV t}
  553.  
  554. {:EC14}  {DISP 12,38,,%an7%DELETE%an1 %to%%an7?}
  555.   {DISP 13,45,07,(y/%an7%N%an0) :  ^H}
  556.   {GETS ch,1,EC13}
  557.   {COMP ch,n}  {IFCO EC13}
  558.   {COMP ch,y}  {IFCO ,EC14}
  559.   {DISP 15,38,,%an7%%an9%DELETING}
  560.   {SETV userno,%tono}
  561.   {EXEC-N DEL %userdir%%userno.*}
  562.   {EXEC-N DEL %msgsdir%E%userno-*.*}
  563.   {SETV s,1}  {CALL update_clist}  {SETV s}
  564.   {SETV a,0}
  565. {:EC15}  {INCR a}
  566.   {SETV msgno,1}
  567.   {CALL update_index}
  568.   {COMP a,%mhigh}  {IFCO-L EC15}
  569.   {SETV a,1}
  570.   {CALL get_cinfo}
  571.   {COMP uhigh,%high}  {IFCO-LE EC1}
  572.   {CALL read_data)
  573.   {SETV uhigh,%high}  {SETV login_name,%l_caller}  {SETV userno,%luserno}
  574.   {CALL write_data)
  575.   {GOTO EC1}
  576.  
  577. {:EFA}
  578.   {SETE exit5}
  579.   {SEND %an0}
  580.   {DISP 15,3,,%an7%%an9 Scanning...}
  581.   {CALL get_finfo}
  582.   {CALL EO2}
  583. {:EF1}  {SEND %an0}
  584.   {SETV dline,File Area(s)}
  585.   {CALL AE1}
  586.   {COMP ch,e}   {IFCO EF5}
  587.   {COMP ch,d}   {IFCO EF13,EF2}
  588.  
  589. {:get_finfo}
  590.   {SETV high,0}  {SETV total,0}  {SETV na,0}  {SETV temp,0}
  591. {:EF}  {INCR temp}  {COMP temp,%fhigh}  {IFCO-G EF0}
  592.   {IFEX %filedir%F%temp.BAS,,EF}
  593.   {SETV high,%temp}
  594.   {INCR total}  {GOTO EF}
  595. {:EF0}  {INCR na}  {IFEX %filedir%F%na.BAS,EF0}
  596.   {RETURN}
  597.  
  598. {:EF2}  {CALL blank_box}
  599.   {DISP 7 ,49,0E,Add a File Area}
  600.   {DISP 9 ,38,07,Name? %an7%%an12                              }  {DISP 9 ,44,,}  {SEND %an7%%an12}
  601.   {SETG 120,EM11}
  602.   {GETS bname,30,EF1}
  603.   {SEND %an0}  {DISP 10,38,07,Access Level? }
  604. {:EF11}  {GETS bal,3,EF11}
  605. {:EF3}  {DISP 12,38,0C,Ok to save? (%an0%Y%an1,n) :%an0  ^H}
  606.   {GETS-H ch,1,EF12}
  607.   {COMP ch,y}  {IFCO EF12}
  608.   {COMP ch,n}  {IFCO EF2,EF3}
  609. {:EF12}  {SETV fa,%na}
  610.   {DISP 14,38,07,Saving area #%fa...}
  611.   {COMP fa,%fhigh}  {IFCO-LE EF16}
  612.   {CALL read_data}
  613.   {SETV fhigh,%fa}  {SETV login_name,%l_caller} {SETV userno,%luserno}
  614.   {CALL write_data}
  615. {:EF16} {WOPE %filedir%F%fa.BAS}  {WRIT %bname}  {WRIT %bal}  {WCLO}
  616.   {WOPE %filedir%F%fa.LST}
  617.   {WRIT Φ = unvalidated}
  618.   {WRIT   Filename         Size   Description}
  619.   {WRIT ------------------------------------------------------------------------------}
  620.   {WCLO}
  621.   {EXEC-N MD %filedir%F%fa}
  622.   {GOTO EFA}
  623.  
  624. {:EF5}  {CALL blank_box}
  625.   {DISP 7 ,49,0E,Edit a File Area}
  626.   {DISP 9 ,38,0F,Edit which? (1 - %fhigh) : }
  627.   {SETG 120,EM11}
  628.   {GETS fa,2,EF1}
  629.   {COMP fa,1}  {IFCO-L EF5}
  630.   {COMP fa,%fhigh}  {IFCO-G EF5}
  631.   {IFEX %filedir%F%fa.BAS,,EF5}
  632.   {ROPE %filedir%F%fa.BAS,EF5}  {READ bname}  {READ bal}  {RCLO}
  633. {:EF7}  {CALL blank_box}
  634.   {DISP 7 ,50,0F,File Area %fa}
  635.   {DISP 9 ,38,0F,Name: %an0%%bname}
  636.   {DISP 10,38,07,AL  : %an0%%bal}
  637.   {DISP 11,38,0D,(Press ENTER to keep same info)}
  638.   {DISP 12,38,07,Name? %an7%%an12                              }  {DISP 12,44,,}  {SEND %an12}
  639.   {SETG 120,EM11}
  640.   {GETS ch,30,EF9}
  641.   {SETV bname,%ch}
  642. {:EF9}  {SEND %an0}  {DISP 13,38,07,AL  : }
  643.   {GETS ch,3,EF10}
  644.   {SETV bal,%ch}
  645. {:EF10} {DISP 15,38,0C, Saving...}
  646.   {WOPE %filedir%F%fa.BAS}  {WRIT %bname}  {WRIT %bal}  {WCLO}
  647.   {GOTO EF5}
  648.  
  649. {:EF13}  {CALL blank_box}
  650.   {DISP 7 ,49,0F,%an7%%an9%DELETE%an3 a File Area}
  651.   {DISP 9 ,38,0F,DELETE which? (1 - %fhigh) : }
  652.   {SETG 120,EM11}
  653.   {GETS fa,2,EF1}
  654.   {COMP fa,1}  {IFCO-L EF13}
  655.   {COMP fa,%fhigh}  {IFCO-G EF13}
  656.   {IFEX %filedir%F%fa.BAS,,EF13}
  657.   {DISP 7 ,49,0F,%an7%DELETE%an3 a File Area}
  658.   {ROPE %filedir%F%fa.BAS,EF13}  {READ bname}  {READ bal}  {RCLO}
  659.   {CALL blank_box}
  660.   {DISP 7 ,38,0E,      File Area #%fa}
  661.   {DISP 9 ,38,07,Name: %an0%%bname}
  662.   {DISP 10,38,07,AL  : %an0%%bal}
  663. {:EF14}  {DISP 12,38,,%an7%DELETE?  %an0(y,%an7%N%an0) :  ^H}
  664.   {GETS ch,1,EF13}
  665.   {COMP ch,n}  {IFCO EF13}
  666.   {COMP ch,y}  {IFCO ,EF14}
  667.   {EXEC-N DEL %filedir%F%fa\*.*}
  668.   {DISP 14,38,,%an7%%an9%DELETING}
  669.   {EXEC-N DEL %filedir%F%fa.*}
  670.   {EXEC-N RD %filedir%F%fa}
  671.   {CALL get_finfo}
  672.   {COMP fhigh,%high}  {IFCO-LE EF1}
  673.   {CALL read_data)
  674.   {SETV fhigh,%high}  {SETV login_name,%l_caller}  {SETV userno,%luserno}
  675.   {CALL write_data)
  676.   {GOTO EF1}
  677.  
  678. {:AE1}  {CALL blank_box}
  679.   {DISP 7 ,38,0E,%dline:}
  680.   {DISP 10,38,07,High # .............%an7 %high}
  681.   {DISP 9 ,38,07,In use .............%an7 %total}
  682.   {DISP 11,38,07,Next available .....%an7 %na}
  683. {:AE2}  {DISP 15,42,07,Press ENTER to quit}
  684.   {DISP 13,38,07,(%an7%A%an0%)dd, (%an7%E%an0%)dit or (%an7%D%an0%)elete?  ^H}
  685.   {SETG 120,AE3}
  686.   {GETS-H ch,1,AE3}
  687.   {SETV dline,aed}
  688.   {INST dline,%ch}  {IFCO AE4,AE2}
  689. {:AE3}  {POPS}
  690. {:AE5}  {SETV total} {SETV high} {SETV temp}  {SETV na}
  691.   {CALL WF5}
  692.   {GOTO exit4}
  693. {:AE4}  {RETURN}
  694.  
  695. {:exit4}
  696.   {MACL MACROBBS.MAC,m_init_w}
  697.  
  698. {:exit5}
  699.   {MACL MACROBBS.MAC,m_init}
  700.  
  701. ///////////////////////////////////////////////////////////////////////////
  702. {:blank_box}
  703.   {SETV mic,6}
  704.   {DISP 6 ,36,07,╔═════════════════════════════════════════╗
  705.   {DISP 7 ,36,07,║                                         ║}
  706.   {DISP 8 ,36,07,║                                         ║}
  707.   {DISP 9 ,36,07,║                                         ║}
  708.   {DISP 10,36,07,║                                         ║}
  709.   {DISP 11,36,07,║                                         ║}
  710.   {DISP 12,36,07,║                                         ║}
  711.   {DISP 13,36,07,║                                         ║}
  712.   {DISP 14,36,07,║                                         ║}
  713.   {DISP 15,36,07,║                                         ║}
  714.   {DISP 16,36,07,╚═════════════════════════════════════════╝}
  715.   {SETV mic}
  716.   {RETURN}
  717.  
  718. {:WF5}
  719.   {DISP 6 ,36,17,╔═════════════════════════════════════════╗
  720.   {DISP 7 ,36,17,║    Embryo     ____    by Shad Muegge    ║}
  721.   {DISP 8 ,36,17,║   ---------^|\/ o  \------------------   ║}
  722.   {DISP 9 ,36,17,║        ____^|    ,__^| Association of     ║}
  723.   {DISP 10,36,17,║       /  o \/^|____/  Babble Fish        ║}
  724.   {DISP 11,36,17,║      ^|__,    ^|____   Programmers        ║}
  725.   {DISP 12,36,17,║       \____^|\/ o  \                     ║}
  726.   {DISP 13,36,17,║            ^|    ,__^| MEMBER             ║}
  727.   {DISP 14,36,17,║   ---------^|/\____/------------------   ║}
  728.   {DISP 15,36,17,║                                         ║}
  729.   {DISP 16,36,17,╚═════════════════════════════════════════╝}
  730.   {RETURN}
  731.  
  732.